#include "data.h"

//构造函数
Ojson_data::Ojson_data()
{
  //this->msg = new analyse_data();
 
}
//析构函数
Ojson_data::~Ojson_data()
{
  
}
analyse_data Ojson_data::getmsg()
{
  return this->msg;
}
//函数功能：解析JSON格式数据，存储接收到的数据
//函数参数：接收到的数据
//函数返回值：void
void Ojson_data::handledata(String info) 
{
    DeserializationError error = deserializeJson(this->doc,info);
    if(error)
    {
        Serial.print(F("File to read message,using length:"));
        Serial.println(info.length());
        return;
    }
   //将JsonDocument对象中的数据解析到analyse_data对象中。
    msg.Claw = doc["Claw"].as<bool>();
    msg.ClawFlag = doc["ClawFlag"].as<bool>();
    msg.DPI = doc["DPI"].as<double>();
    msg.Button = doc["Button"].as<String>();
    //msg->button = doc["Button"].as<String>();  
    msg.Einmalflag = doc["EinmalFlag"].as<bool>();
    msg.X = doc["Position"][0].as<double>();
    msg.Y = doc["Position"][1].as<double>();
    msg.Z = doc["Position"][2].as<double>();
    msg.States = doc["States"].as<String>();
    msg.DPI = msg.DPI/10;//改变单位为毫米级
    Serial.println("Get msg:");
    Serial.println(msg.Button);
    Serial.println(msg.Claw);
    Serial.println(msg.DPI);
    Serial.println(msg.ClawFlag);
    //Serial.println(msg.Position);
    Serial.println(msg.States);
    Serial.println(msg.X);
    Serial.println(msg.Y);
    Serial.println(msg.Z);

}
